// POJ1731 Orders
// 陈锋
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main() {
  ios::sync_with_stdio(false), cin.tie(0);
  string s;
  cin >> s;
  sort(s.begin(), s.end());
  cout << s << endl;
  while (next_permutation(s.begin(), s.end()))
    cout << s << endl;
  return 0;
}
/*
  算法分析请参考: 《入门经典-第2版》7.2.1  生成可重集的排列
  注意对next_permutation的调用
*/
// Accepted 172ms 648kB 290 G++ 2020-08-09 16:46:16 21898900